<?

/** 
  +---------------------------------------------------------- 
 * 功能：计算两个日期相差 年 月 日 
  +---------------------------------------------------------- 
 * @param  date     $startdate 起始日期 
 * @param  date     $enddate 截止日期日期 
  +---------------------------------------------------------- 
 * @return array              
  +---------------------------------------------------------- 
 */
 
 
function count_period($startdate,$enddate) { 
    
	 
 
 
	
	if (strtotime($startdate) > strtotime($enddate)) { 
        $ymd = $enddate; 
        $enddate = $startdate; 
        $startdate = $ymd; 
    } 
	

    list($y1, $m1, $d1) = explode('-', $startdate); 
    list($y2, $m2, $d2) = explode('-', $enddate); 
    $y = $m = $d = $_m = 0; 

   $math = ($y2 - $y1) * 12 + $m2 - $m1;



//round 是要处理四舍五入的哦。
//echo $y = round($math / 12);

//floor计算年份才能正确。因为大于0.5的话，就会计算多一年了。
    $y = floor($math / 12);
    $m = intval($math % 12);
    $d = (mktime(0, 0, 0, $m2, $d2, $y2) - mktime(0, 0, 0, $m2, $d1, $y2)) / 86400; 
    if ($d < 0) { 
        $m -= 1; 
        $d += date('j', mktime(0, 0, 0, $m2, 0, $y2)); 
    } 
    $m < 0 && $y -= 1; 
	
    return array($y, $m, $d); 
 
}
?>